package com.qianya.oa.util;

public enum GenericErrorCode implements ErrorCode {

    /* 系统消息 */
    ERROR("9999", "系统异常"),

    /* 请求 */
    PARAM_ERROR("4000", "参数错误"),
    PARAM_TYPE_ERROR("4001", "参数类型错误"),
    COMMAND_ERROR("4002", "不支持的操作类型"),
    HTTP_REQUEST_ERROR("4003", "不支持的请求类型"),
    DATA_UNIQUE_ERROR("4004", "数据校验错误"),
    PARAMETER_ERROR("4005", "参数非法"),
    /* jwt */
    NO_TOKEN_ERROR("4010", "系统未获取到token"),
    TOKEN_REFRESH_ERROR("4011", "token刷新失败"),
    TOKEN_TIMEOUT_ERROR("4012", "token失效"),
    TOKEN_VALID_ERROR("4013", "token验证失败"),
    /* 权限 */
    NOT_AUTHORIZATION("4020", "授权认证失败"),
    FORBIDDEN("4021", "权限不足，请联系管理员"),
    /* cron */
    CRON_ILLEGAL_ERROR("4030", "cron表达式非法"),


    /* 业务错误 */
    ACCOUNT_NOT_FOUND("4100", "帐号不存在"),
    ACCOUNT_LOCKED("4101", "帐号已被锁定"),
    ACCOUNT_PASSWORD_ERROR("4102", "密码错误"),
    ACCOUNT_EXITED("4103", "账号已存在"),
    ACCOUNT_PHONE_EXITED("4104", "手机号已存在"),
    ACCOUNT_WEIXIN_EXITED("4105", "微信号已存在"),

    USER_PASSWORD_ERROR("4120", "密码不能有汉字"),
    USER_PASSWORDLENGTH_ERROR("4121", "密码长度最多输入20个字符"),
    USER_OLD_PASSWORD_ERROR("4122", "原密码输入错误"),
    USER_NEW_PASSWORD_ERROR("4123", "新密码不能和原密码相同"),
    USER_PASSWORD_LENGTH_ERROR("4124", "请输入6-20个字的密码"),
    USER_PASSWORD_CONFIRM_ERROR("4125", "两次输入密码不一致"),
    USER_PASSWORD_STRONG_ERROR("4126", "密码至少包含数字、小写字母、大写字母和特殊字符中的两种"),
    USER_PHONE_ERROR("4127", "用户名手机号重复"),
    USER_IDCARD_ERROR("4128", "身份证重复"),

    WECHAT_PUSH_USERS_LIMITED("4140", "推送人员超限，一次对多推送1000人"),
    WECHAT_PUSH_ERROR("4141", "推送微信图文信息失败"),
    WECHAT_ASY_USERINFO_ERROR("4142", "同步用户信息到微信失败"),
    WECHAT_REMOVE_USER_ERROR("4143", "微信用户删除失败"),

    SMS_SEND_ERROR("4160", "短信发送失败"),
    SMS_ERROR("4161", "短信已发送"),
    SMS_CODE_ERROR("4162", "验证码错误"),

    PLAN_ID_ERROR("4170", "计划id错误"),
    PLAN_STAGE_ERROR("4171", "该计划阶段已分配给患者无法删除"),
    PLAN_STATUS_ERROR("4172", "该计划有人正在进行中无法关闭"),
    PLAN_STATUS_USING_ERROR("4173", "该计划有人正在进行中暂时无法更改"),
    PLAN_NOT_EXIST("4174", "该患者未分配计划，请分配计划后重试"),

    Q_ID_ERROR("4190", "问卷id错误"),
    Q_STATUS_DELETE_ERROR("4191", "该问卷正在使用中，不可删除"),
    Q_STATUS_FORBIDDEN_ERROR("4191", "该问卷正在使用中，不可禁用"),
    Q_RECORD_STATUS_ERROR("4192", "该问卷已被使用，修改会导致记录无法查看"),
    QUESTIONNAIRE_TEMPORARY_ERROR("4193", "您当前有正在进行中的问卷"),

    ROLE_NAME_ERROR("4210", "角色名称不能含有符号"),
    DEPART_STATUS_USING_ERROR("4211", "部门名称已存在"),
    FORUM_TOPIC_STATUS_ERROR("4212", "帖子审核后可见"),
    OBJECT_NOT_FOUND("4213", "要访问的资源不存在"),
    DEPART_NOT_EXIST_ERROR("4211", "部门不存在"),
    /* 数据采集频率限制 */
    OVER_MAXIMUM_FREQUENCY("4250", "频率最大限制最多两分钟采集一次"),


    /* websocket */
    WEBSOCKET_SUCCESS("2000", "成功"),
    WINDOW_OPEN("3000", "打开窗口"),
    WINDOW_CLOSE("3010", "关闭窗口"),
    NETWORK_ERROR("4000", "网络错误"),
    CHAT_LINK_ERROR("4010", "聊天参数错误"),

    CHAT_NO_PERMISSION_ERROR("5000", "权限不足，其他管理员正在参与聊天");

    private String code;
    private String message;

    GenericErrorCode() {
    }

    GenericErrorCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public String getCode() {
        return this.code;
    }

    @Override
    public String getMessage() {
        return this.message;
    }

}
